chore: Adding a pixi file and associated CI#23
Conversation
|
I agree
This might be worth opening a new ticket rather than discuss in-depth here, but how about in the README, simply build |
I believe I've tried this in the past and found that it doesn't work because |
|
Theres a lot of hacks people can do to get colcon working. Personally, I use a venv and alias that venv when I need it. However, expecting beginners to build workspaces and venvs is a bit too much. That being said I havent yet dived into why pixi is broken in this draft PR. It seems to have something to do with For now the docker instructions work just fine. Docker is now available across most major platforms and in any case when we actually deploy things in the cloud docker is the default tool of choice. |
7800bf2 to
6fe02ae
Compare
For folks who like pixi and want to test things out using pixi. Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
6fe02ae to
df7a04f
Compare
| # Install cargo-ament-build into the pixi environment's bin folder | ||
| setup-cargo = "test -f $CONDA_PREFIX/bin/cargo-ament-build || cargo install cargo-ament-build --root $CONDA_PREFIX" | ||
| # Build messages first | ||
| build-msgs = { cmd = "colcon build --packages-select rmf_prototype_msgs", depends-on = ["setup-cargo"], env = { LIBCLANG_PATH = "$CONDA_PREFIX/lib" } } |
There was a problem hiding this comment.
I seem to have needed to do this hack otherwise for whatever reason the ament_prefix_path was not being updated correctly. Ironically this works just fine on the docker image so Im not exactly sure whats going wrong.
There was a problem hiding this comment.
Pull request overview
Adds Pixi-based developer workflow and CI to build/test the ROS 2 + Rust workspace without relying on Docker, and aligns rmf_path_visualizer with the existing ros-env dependency pattern used elsewhere in the repo.
Changes:
- Introduce a
pixi.tomlworkspace with build/test tasks for colcon + Rust tooling. - Add a dedicated GitHub Actions workflow to run
pixi run teston pushes/PRs targetingepic/next-gen-base. - Update
rmf_path_visualizerto useros-envfor ROS message types and simplify its Cargo dependencies.
Reviewed changes
Copilot reviewed 4 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
pixi.toml |
Defines Pixi environment + tasks to set up Rust tooling, build message package first, then build & test the workspace. |
path_server/rmf_path_visualizer/src/main.rs |
Switches message imports to ros_env::* and applies small formatting cleanup. |
path_server/rmf_path_visualizer/Cargo.toml |
Replaces per-message crate deps with ros-env = "0.2.0". |
.gitignore |
Stops ignoring some previously listed paths; adds ignores for Pixi and Cargo local dirs. |
.github/workflows/pixi.yml |
Adds CI job that installs Pixi env and runs the Pixi test task. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| build = { cmd = "colcon build --packages-skip rmf_prototype_msgs", depends-on = ["build-msgs"], env = { LIBCLANG_PATH = "$CONDA_PREFIX/lib", AMENT_PREFIX_PATH = "$PIXI_PROJECT_ROOT/install/rmf_prototype_msgs:$CONDA_PREFIX" } } | ||
|
|
||
| # Run tests | ||
| test = { cmd = "colcon test --packages-select rmf_path_server_test --python-testing pytest --event-handlers console_direct+", depends-on = ["build"], env = { LIBCLANG_PATH = "$CONDA_PREFIX/lib" } } |
|
|
||
| [tasks] | ||
| # Install cargo-ament-build into the pixi environment's bin folder | ||
| setup-cargo = "test -f $CONDA_PREFIX/bin/cargo-ament-build || cargo install cargo-ament-build --root $CONDA_PREFIX" |
| with: | ||
| run-install: true | ||
| cache-key: pixi-env-cache |
d9e777f to
df7a04f
Compare
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
Signed-off-by: Arjo Chakravarty <arjoc@intrinsic.ai>
New feature implementation
Implemented feature
I added a pixi workspace for folks who prefer using pixi to docker.
Implementation description
This makes installing
colcon-ros-cargoa little less painful as we don't need to--break-system-dependenciesGenAI Use
We follow OSRA's policy on GenAI tools
Generated-by: Gemini Pro 3.1